#include "gruposonidos.h"

namespace gge
{

GrupoSonidos::GrupoSonidos()
{
	id=0;
	m_volumen=0;
}

GrupoSonidos::~GrupoSonidos()
{
}

void GrupoSonidos::Reproducir(std::string nombre)
{
	m_listaSonidos[nombre].Play();
}

void GrupoSonidos::Pausar(std::string nombre)
{
	m_listaSonidos[nombre].Pause();
}

void GrupoSonidos::Detener(std::string nombre)
{
	m_listaSonidos[nombre].Stop();	
}

void GrupoSonidos::CambiarVolumen(float volumen)
{
	std::map<std::string, sf::Sound>::iterator itSonido = m_listaSonidos.begin();
	
	while (itSonido!=m_listaSonidos.end())
	{
		itSonido->second.SetVolume(volumen);
		itSonido++;
	}
	m_volumen=volumen;
}

void GrupoSonidos::PausarTodo()
{
	std::map<std::string, sf::Sound>::iterator itSonido = m_listaSonidos.begin();
	
	while (itSonido!=m_listaSonidos.end())
	{
		itSonido->second.Pause();
		itSonido++;
	}
}

void GrupoSonidos::DetenerTodo()
{
	std::map<std::string, sf::Sound>::iterator itSonido = m_listaSonidos.begin();
	
	while (itSonido!=m_listaSonidos.end())
	{
		itSonido->second.Stop();
		itSonido++;
	}
}

bool GrupoSonidos::AgregarSonido(sf::Sound sonido, std::string nombre)
{
	std::map<std::string, sf::Sound>::iterator itSonido = m_listaSonidos.begin();
	
	while (itSonido!=m_listaSonidos.end())
	{
		if (itSonido->first.compare(nombre)==0);
			return false;
		itSonido++;
	}
	
	m_listaSonidos.insert(std::pair<std::string, sf::Sound>(nombre,sonido));
	return true;
}

bool GrupoSonidos::AgregarMusica(sf::Music musica, std::string nombre)
{
	std::map<std::string, sf::Sound>::iterator itSonido = m_listaSonidos.begin();
	
	while (itSonido!=m_listaSonidos.end())
	{
		if (itSonido->first.compare(nombre)==0);
			return false;
		itSonido++;
	}
	
	m_listaSonidos.insert( std::pair<std::string, sf::Sound>(nombre,*( (sf::Sound*)&musica) ) );
	return true;
}

bool GrupoSonidos::CargarDeArchivo(std::string ruta)
{
	return true;
}


}

